[INFO] cloning repository https://github.com/garethkcjones/rays
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/garethkcjones/rays" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarethkcjones%2Frays", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarethkcjones%2Frays'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 854ae9f3013d64013254eb229e8db6bd2ff02090
[INFO] checking garethkcjones/rays against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarethkcjones%2Frays" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/garethkcjones/rays on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/garethkcjones/rays
[INFO] finished tweaking git repo https://github.com/garethkcjones/rays
[INFO] tweaked toml for git repo https://github.com/garethkcjones/rays written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/garethkcjones/rays already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 76eee4c0009f9ee4c697387731746187ff1559605119a083353f6f39218f1efd
[INFO] running `Command { std: "docker" "start" "-a" "76eee4c0009f9ee4c697387731746187ff1559605119a083353f6f39218f1efd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "76eee4c0009f9ee4c697387731746187ff1559605119a083353f6f39218f1efd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "76eee4c0009f9ee4c697387731746187ff1559605119a083353f6f39218f1efd", kill_on_drop: false }`
[INFO] [stdout] 76eee4c0009f9ee4c697387731746187ff1559605119a083353f6f39218f1efd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3027d3b78b9486e997f2987d75f5fe6ca1a83dfd8e736cb942061208bb0e0bc3
[INFO] running `Command { std: "docker" "start" "-a" "3027d3b78b9486e997f2987d75f5fe6ca1a83dfd8e736cb942061208bb0e0bc3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling crossbeam-utils v0.8.4
[INFO] [stderr]    Compiling memoffset v0.6.3
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking weezl v0.1.5
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.4
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.10
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking gif v0.11.2
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking rays v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.04s
[INFO] running `Command { std: "docker" "inspect" "3027d3b78b9486e997f2987d75f5fe6ca1a83dfd8e736cb942061208bb0e0bc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3027d3b78b9486e997f2987d75f5fe6ca1a83dfd8e736cb942061208bb0e0bc3", kill_on_drop: false }`
[INFO] [stdout] 3027d3b78b9486e997f2987d75f5fe6ca1a83dfd8e736cb942061208bb0e0bc3
[INFO] checking garethkcjones/rays against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgarethkcjones%2Frays" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/garethkcjones/rays on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/garethkcjones/rays
[INFO] finished tweaking git repo https://github.com/garethkcjones/rays
[INFO] tweaked toml for git repo https://github.com/garethkcjones/rays written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/garethkcjones/rays already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3f22e7f754873723738b07ca7349cf77d1fcbd02a008ec2f5aa5fbc078b04c19
[INFO] running `Command { std: "docker" "start" "-a" "3f22e7f754873723738b07ca7349cf77d1fcbd02a008ec2f5aa5fbc078b04c19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f22e7f754873723738b07ca7349cf77d1fcbd02a008ec2f5aa5fbc078b04c19", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f22e7f754873723738b07ca7349cf77d1fcbd02a008ec2f5aa5fbc078b04c19", kill_on_drop: false }`
[INFO] [stdout] 3f22e7f754873723738b07ca7349cf77d1fcbd02a008ec2f5aa5fbc078b04c19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] af308b0c99b829c1c62cc7424cc8e66bb2a93677fbede8c706e0735a00e32c3a
[INFO] running `Command { std: "docker" "start" "-a" "af308b0c99b829c1c62cc7424cc8e66bb2a93677fbede8c706e0735a00e32c3a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.94
[INFO] [stderr]    Compiling crossbeam-utils v0.8.4
[INFO] [stderr]    Compiling memoffset v0.6.3
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling miniz_oxide v0.4.4
[INFO] [stderr]    Compiling crc32fast v1.2.1
[INFO] [stderr]     Checking either v1.6.1
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]     Checking weezl v0.1.5
[INFO] [stderr]     Checking deflate v0.8.6
[INFO] [stderr]     Checking miniz_oxide v0.3.7
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.4
[INFO] [stderr]     Checking crossbeam-channel v0.5.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.10
[INFO] [stderr]     Checking gif v0.11.2
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking bytemuck v1.5.1
[INFO] [stderr]     Checking rand_core v0.6.2
[INFO] [stderr]     Checking png v0.16.8
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]     Checking jpeg-decoder v0.1.22
[INFO] [stderr]     Checking tiff v0.6.1
[INFO] [stderr]     Checking image v0.23.14
[INFO] [stderr]     Checking rays v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p1z, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:22:44
[INFO] [stdout]    |
[INFO] [stdout] 22 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p1z, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p0z, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p0z, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:24:34
[INFO] [stdout]    |
[INFO] [stdout] 24 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p1y, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:24:44
[INFO] [stdout]    |
[INFO] [stdout] 24 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p1y, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p0y, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p0y, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:26:34
[INFO] [stdout]    |
[INFO] [stdout] 26 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p1x, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:22:34
[INFO] [stdout]    |
[INFO] [stdout] 22 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p1z, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:26:44
[INFO] [stdout]    |
[INFO] [stdout] 26 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p1x, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p0x, material),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:22:44
[INFO] [stdout]    |
[INFO] [stdout] 22 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p1z, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:27:44
[INFO] [stdout]    |
[INFO] [stdout] 27 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p0x, material),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:23:34
[INFO] [stdout]    |
[INFO] [stdout] 23 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p0z, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let axis = thread_rng().gen_range(0..=2);
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:61:75
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let right = BvhNode::new_hittable_from_range(&mut objects[mid..], tr.clone());
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:23:44
[INFO] [stdout]    |
[INFO] [stdout] 23 |             XyRect::new_hittable(p0x..p1x, p0y..p1y, p0z, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:92:43
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 .map_or(tr.clone(), |rec| tr.start..rec.t());
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let a = a.bounding_box(0.0..1.0).minimum().x();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:24:34
[INFO] [stdout]    |
[INFO] [stdout] 24 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p1y, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:108:28
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let b = b.bounding_box(0.0..1.0).minimum().x();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:24:44
[INFO] [stdout]    |
[INFO] [stdout] 24 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p1y, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let a = a.bounding_box(0.0..1.0).minimum().y();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:25:34
[INFO] [stdout]    |
[INFO] [stdout] 25 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p0y, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let b = b.bounding_box(0.0..1.0).minimum().y();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 |             XzRect::new_hittable(p0x..p1x, p0z..p1z, p0y, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:121:28
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let a = a.bounding_box(0.0..1.0).minimum().z();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:26:34
[INFO] [stdout]    |
[INFO] [stdout] 26 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p1x, Arc::clone(&material)),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let b = b.bounding_box(0.0..1.0).minimum().z();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:26:44
[INFO] [stdout]    |
[INFO] [stdout] 26 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p1x, Arc::clone(&material)),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/constantmedium.rs:50:50
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if let Some(rec1) = self.boundary.hit(r, -f64::INFINITY..f64::INFINITY) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:27:34
[INFO] [stdout]    |
[INFO] [stdout] 27 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p0x, material),
[INFO] [stdout]    |                                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/constantmedium.rs:51:54
[INFO] [stdout]    |
[INFO] [stdout] 51 |             if let Some(rec2) = self.boundary.hit(r, (rec1.t() + 0.0001)..f64::INFINITY) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/block.rs:27:44
[INFO] [stdout]    |
[INFO] [stdout] 27 |             YzRect::new_hittable(p0y..p1y, p0z..p1z, p0x, material),
[INFO] [stdout]    |                                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:45:48
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:31:43
[INFO] [stdout]    |
[INFO] [stdout] 31 |         let axis = thread_rng().gen_range(0..=2);
[INFO] [stdout]    |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:56:18
[INFO] [stdout]    |
[INFO] [stdout] 56 |         for i in 0..2 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:61:75
[INFO] [stdout]    |
[INFO] [stdout] 61 |                 let right = BvhNode::new_hittable_from_range(&mut objects[mid..], tr.clone());
[INFO] [stdout]    |                                                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 58 |             for j in 0..2 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/bvhnode.rs:92:43
[INFO] [stdout]    |
[INFO] [stdout] 92 |                 .map_or(tr.clone(), |rec| tr.start..rec.t());
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 for k in 0..2 {
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:107:28
[INFO] [stdout]     |
[INFO] [stdout] 107 |     let a = a.bounding_box(0.0..1.0).minimum().x();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]     |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |         for i in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:108:28
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let b = b.bounding_box(0.0..1.0).minimum().x();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:118:22
[INFO] [stdout]     |
[INFO] [stdout] 118 |             for j in 0..2 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:114:28
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let a = a.bounding_box(0.0..1.0).minimum().y();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:120:26
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 for k in 0..2 {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |     let b = b.bounding_box(0.0..1.0).minimum().y();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:121:28
[INFO] [stdout]     |
[INFO] [stdout] 121 |     let a = a.bounding_box(0.0..1.0).minimum().z();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:165:48
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]     |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/bvhnode.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let b = b.bounding_box(0.0..1.0).minimum().z();
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:176:18
[INFO] [stdout]     |
[INFO] [stdout] 176 |         for i in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/constantmedium.rs:50:50
[INFO] [stdout]    |
[INFO] [stdout] 50 |         if let Some(rec1) = self.boundary.hit(r, -f64::INFINITY..f64::INFINITY) {
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |             for j in 0..2 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/constantmedium.rs:51:54
[INFO] [stdout]    |
[INFO] [stdout] 51 |             if let Some(rec2) = self.boundary.hit(r, (rec1.t() + 0.0001)..f64::INFINITY) {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:180:26
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 for k in 0..2 {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:45:48
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]    |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable.rs:39:51
[INFO] [stdout]    |
[INFO] [stdout] 39 |             if let Some(temp_rec) = object.hit(r, t.start..closest_so_far) {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:56:18
[INFO] [stdout]    |
[INFO] [stdout] 56 |         for i in 0..2 {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 45 |         for di in 0..2 {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 58 |             for j in 0..2 {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:50:23
[INFO] [stdout]    |
[INFO] [stdout] 50 |             for dj in 0..2 {
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable/rotate.rs:60:26
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 for k in 0..2 {
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 for dk in 0..2 {
[INFO] [stdout]    |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for _ in 0..depth {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:105:48
[INFO] [stdout]     |
[INFO] [stdout] 105 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]     |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/perlin.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |     for i in (0..p.len()).rev() {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:116:18
[INFO] [stdout]     |
[INFO] [stdout] 116 |         for i in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/perlin.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let target = thread_rng().gen_range(0..=i);
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:118:22
[INFO] [stdout]     |
[INFO] [stdout] 118 |             for j in 0..2 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/perlin.rs:120:31
[INFO] [stdout]     |
[INFO] [stdout] 120 |         *i = Vec3::new_random(-1.0..1.0).unit();
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:120:26
[INFO] [stdout]     |
[INFO] [stdout] 120 |                 for k in 0..2 {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec3.rs:35:38
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let p = Self::new_random(-1.0..1.0);
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:165:48
[INFO] [stdout]     |
[INFO] [stdout] 165 |         let bounding_box = object.bounding_box(0.0..1.0);
[INFO] [stdout]     |                                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec3.rs:70:38
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let rand_dst = Uniform::from(-1.0..1.0);
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:176:18
[INFO] [stdout]     |
[INFO] [stdout] 176 |         for i in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/lib.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |     if let Some(rec) = world.hit(r, 0.001..f64::INFINITY) {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/lib.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |     for j in (0..image_height).rev() {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:178:22
[INFO] [stdout]     |
[INFO] [stdout] 178 |             for j in 0..2 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 |         for i in 0..image_width {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/hittable/rotate.rs:180:26
[INFO] [stdout]     |
[INFO] [stdout] 180 |                 for k in 0..2 {
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:107:22
[INFO] [stdout]     |
[INFO] [stdout] 107 |             for _ in 0..samples_per_pixel {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/hittable.rs:39:51
[INFO] [stdout]    |
[INFO] [stdout] 39 |             if let Some(temp_rec) = object.hit(r, t.start..closest_so_far) {
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:201:23
[INFO] [stdout]     |
[INFO] [stdout] 201 |     for thread_num in 1..num_threads {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:45:19
[INFO] [stdout]    |
[INFO] [stdout] 45 |         for di in 0..2 {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:50:23
[INFO] [stdout]    |
[INFO] [stdout] 50 |             for dj in 0..2 {
[INFO] [stdout]    |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:55:27
[INFO] [stdout]    |
[INFO] [stdout] 55 |                 for dk in 0..2 {
[INFO] [stdout]    |                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/perlin.rs:75:18
[INFO] [stdout]    |
[INFO] [stdout] 75 |         for _ in 0..depth {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/perlin.rs:102:15
[INFO] [stdout]     |
[INFO] [stdout] 102 |     for i in (0..p.len()).rev() {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/perlin.rs:103:45
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let target = thread_rng().gen_range(0..=i);
[INFO] [stdout]     |                                             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/perlin.rs:120:31
[INFO] [stdout]     |
[INFO] [stdout] 120 |         *i = Vec3::new_random(-1.0..1.0).unit();
[INFO] [stdout]     |                               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec3.rs:35:38
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let p = Self::new_random(-1.0..1.0);
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/vec3.rs:70:38
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let rand_dst = Uniform::from(-1.0..1.0);
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/lib.rs:36:37
[INFO] [stdout]    |
[INFO] [stdout] 36 |     if let Some(rec) = world.hit(r, 0.001..f64::INFINITY) {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/lib.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |     for j in (0..image_height).rev() {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 |         for i in 0..image_width {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:107:22
[INFO] [stdout]     |
[INFO] [stdout] 107 |             for _ in 0..samples_per_pixel {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/lib.rs:201:23
[INFO] [stdout]     |
[INFO] [stdout] 201 |     for thread_num in 1..num_threads {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/camera.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | pub struct Camera {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     w: Vec3,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Camera` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/camera.rs:32:21
[INFO] [stdout]    |
[INFO] [stdout] 32 |         time_range: Range<f64>,
[INFO] [stdout]    |                     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/colour.rs:15:30
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new_random(range: Range<f64>) -> Self {
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable.rs:34:31
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn hit(&self, r: &Ray, t: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable.rs:48:32
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn bounding_box(&self, tr: Range<f64>) -> Aabb {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable.rs:64:32
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable.rs:68:32
[INFO] [stdout]    |
[INFO] [stdout] 68 |     fn bounding_box(&self, tr: Range<f64>) -> Aabb {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:40:20
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(xr: Range<f64>, yr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new(xr: Range<f64>, yr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |         xr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 52 |         yr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:62:20
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(xr: Range<f64>, zr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:62:36
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn new(xr: Range<f64>, zr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         xr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:74:13
[INFO] [stdout]    |
[INFO] [stdout] 74 |         zr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:84:20
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(yr: Range<f64>, zr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn new(yr: Range<f64>, zr: Range<f64>, k: f64, material: Arc<dyn Material>) -> Self {
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:95:13
[INFO] [stdout]    |
[INFO] [stdout] 95 |         yr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/aarect.rs:96:13
[INFO] [stdout]    |
[INFO] [stdout] 96 |         zr: Range<f64>,
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:128:33
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:138:32
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:161:33
[INFO] [stdout]     |
[INFO] [stdout] 161 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/aarect.rs:194:33
[INFO] [stdout]     |
[INFO] [stdout] 194 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/block.rs:50:32
[INFO] [stdout]    |
[INFO] [stdout] 50 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/block.rs:54:33
[INFO] [stdout]    |
[INFO] [stdout] 54 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]    |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/bvhnode.rs:18:51
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new(objects: &[Arc<dyn Hittable>], tr: Range<f64>) -> Self {
[INFO] [stdout]    |                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/bvhnode.rs:23:60
[INFO] [stdout]    |
[INFO] [stdout] 23 |     pub fn new_hittable(objects: &[Arc<dyn Hittable>], tr: Range<f64>) -> Arc<dyn Hittable> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/bvhnode.rs:87:32
[INFO] [stdout]    |
[INFO] [stdout] 87 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/bvhnode.rs:100:33
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/constantmedium.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/constantmedium.rs:97:32
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn bounding_box(&self, tr: Range<f64>) -> Aabb {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:219:32
[INFO] [stdout]     |
[INFO] [stdout] 219 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:259:33
[INFO] [stdout]     |
[INFO] [stdout] 259 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:305:33
[INFO] [stdout]     |
[INFO] [stdout] 305 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:311:32
[INFO] [stdout]     |
[INFO] [stdout] 311 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/rotate.rs:351:33
[INFO] [stdout]     |
[INFO] [stdout] 351 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/sphere.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |         time: Range<f64>,
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/sphere.rs:67:15
[INFO] [stdout]    |
[INFO] [stdout] 67 |         time: Range<f64>,
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/sphere.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/sphere.rs:118:33
[INFO] [stdout]     |
[INFO] [stdout] 118 |     fn bounding_box(&self, _tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/sphere.rs:127:32
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/hittable/sphere.rs:162:32
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn bounding_box(&self, tr: Range<f64>) -> Aabb {
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/translate.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 27 |     fn hit(&self, r: &Ray, tr: Range<f64>) -> Option<HitRecord> {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/hittable/translate.rs:42:32
[INFO] [stdout]    |
[INFO] [stdout] 42 |     fn bounding_box(&self, tr: Range<f64>) -> Aabb {
[INFO] [stdout]    |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/vec3.rs:18:30
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn new_random(range: Range<f64>) -> Self {
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 47 previous errors; 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 51 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rays` (lib) due to 48 previous errors; 51 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "af308b0c99b829c1c62cc7424cc8e66bb2a93677fbede8c706e0735a00e32c3a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "af308b0c99b829c1c62cc7424cc8e66bb2a93677fbede8c706e0735a00e32c3a", kill_on_drop: false }`
[INFO] [stdout] af308b0c99b829c1c62cc7424cc8e66bb2a93677fbede8c706e0735a00e32c3a
